#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<stdlib.h>

//int main()
//{
//	int N;
//	scanf("%d", &N);
//	for (int i = 0; i < N; i++)
//	{
//		int n, flag = 1;
//		scanf("%d", &n);
//		int* arr = (int*)malloc(sizeof(int) * (2 * n));
//		for (int j = 0; j < 2 * n; j++)
//		{
//			scanf("%d", &arr[j]);
//		}
//		int p = 0, min = 5001, pmin = 0, sec = 0;
//		for (int z = 0; z < n; z++)
//		{
//			for (int j = 1; j < 2 * n; j += 2)
//			{
//				if (arr[j] < min)
//				{
//					min = arr[j] - sec;
//					pmin = j;
//				}
//			}
//			if (abs(arr[pmin - 1] - p) <= min)
//			{
//				sec += abs(arr[pmin - 1] - p);
//				p = arr[pmin - 1];
//				arr[pmin] = 5001;
//			}
//			else
//			{
//				flag = 0;
//				printf("Notabletocatch\n");
//				break;
//			}
//			min = 5001;
//		}
//		if(flag)
//		printf("Abletocatch\n");
//	}
//	return 0;
//}


int main()
{	
	int arr[250];
	int z = 0;
	int n, k;
	scanf("%d%d", &n, &k);
	while (n)
	{
		arr[z++] = n % 10;
		n /= 10;
	}
	int count = 0;
	for (int i = z - 2; i > 0; i--)
	{
		if (arr[i] >= arr[i - 1] && arr[i] >= arr[i + 1] && arr[i] != 0)
		{
			arr[i] = -1;
			count++;
			if (count == k)
			{
				break;
			}
		}
	}
	while(count != k)
	{
		int max = 0, pmax;
		for (int i = 0; i < z; i++)
		{
			if (arr[i] > max)
			{
				max = arr[i];
				pmax = i;
			}
		}
		arr[pmax] = -1;
		max = 0;
		count++;
	}
	int ans = 0;
	for (int i = z - 1; i >= 0; i--)
	{
		if (arr[i] != -1)
		{
			ans *= 10;
			ans += arr[i];
		}
	}
	printf("%d ", ans);
	return 0;
}